﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

  


  
  <title>FileCopyDir</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


  
  <link href="../css/commands.css" rel="stylesheet" type="text/css">


  
  <link href="../css/print.css" rel="stylesheet" type="text/css" media="print">
</head>


<body>


<h1>FileCopyDir</h1>



<p>复制一个文件夹连同它的所有文件和子文件夹(和 xcopy 相似)。</p>


<p class="CommandSyntax">FileCopyDir, Source, Dest [, Flag]</p>


<h3>参数 </h3>


<table border="1" bordercolor="#c0c0c0" cellpadding="3" cellspacing="0" width="100%">


  <tbody>


    <tr>


      <td>Source</td>


      <td>源目录的名称(末尾不带反斜线)，如果绝对路径未指定将被假设在 <a href="../Variables.htm#WorkingDir">%A_WorkingDir%</a>
。例如：C:\My Folder </td>


    </tr>


    <tr>


      <td>Dest</td>


      <td>目标目录的名称(末尾不带反斜线)，如果绝对路径未指定将被假设在 <a href="../Variables.htm#WorkingDir">%A_WorkingDir%</a> 。
例如：C:\Copy of My Folder </td>


    </tr>


    <tr>


      <td width="15%">Flag</td>


      <td width="85%">
      
      <p>(可选)此 flag(标记) 决定是否覆盖已经存在的文件：</p>


      
      <p><strong>0</strong> (默认): 不覆盖存在的文件。如果 <em>Dest</em>
有一个文件或目录存在，复制操作将不生效并失败。</p>


      
      <p><strong>1</strong>: 覆盖存在的文件。不过，任何 <em>Dest</em>
中的文件或子文件夹没在 <em>Source </em>有对应的将不会被删除。</p>


      
      <p>此参数可以是一个 <a href="../Variables.htm#Expressions">expression</a>(表
达式) 甚至是一个算得的 true(真) 或 false(假) (因为真或假在内部被存为 1 和 0&nbsp;)。</p>


      </td>


    </tr>


  
  </tbody>
</table>


<h3>ErrorLevel</h3>


<p>如果发生了一个问题 <a href="../misc/ErrorLevel.htm">ErrorLevel</a>
会被设为 1 ，此外为 0 。<br>但是，如果源目录包含网页组成的 PageName.htm 和相应的 PageName_files 目录时，即使成功，也会返回 1。</p>


<h3>注意</h3>


<p>如果目标目录结构不存在，可能的话它将被创建。</p>


<p>由于操作将 recursively(递归地) 复制一个文件夹连同它的所有文件和子文件夹，所以复制一个文件夹到它自身内部的某处目
的地的结果未被定义。要绕弯解决这种情况，先复制它到它自身外部的一个目的地，然后使用 <a href="FileMoveDir.htm">FileMoveDir</a>
来移动复制的文件夹到需要的位置。</p>


<p>FileCopyDir 复制单个文件夹。要代替它复制一个文件夹的内容(它的所有文件和子文件夹)，请看 <a href="FileCopy.htm">FileCopy</a> 的示例部分。</p>


<h3>相关命令</h3>


<p><a href="FileMoveDir.htm">FileMoveDir</a>, <a href="FileCopy.htm">FileCopy</a>, <a href="FileMove.htm">FileMove</a>, <a href="FileDelete.htm">FileDelete</a>, <a href="LoopFile.htm">file-loops</a>, <a href="FileSelectFolder.htm">FileSelectFolder</a>, <a href="SplitPath.htm">SplitPath</a> </p>


<h3>示例</h3>


<pre class="NoIndent">FileCopyDir, C:\My Folder, C:\Copy of My Folder<br><br><em>; 例子 #2: 一个运行的脚本提示你去复制一个文件夹。</em><br>FileSelectFolder, SourceFolder, , 3, Select the folder to copy<br>if SourceFolder =<br>return<br><em>; 否则，继续。</em><br>FileSelectFolder, TargetFolder, , 3, Select the folder IN WHICH to create the duplicate folder.<br>if TargetFolder =<br>return<br><em>; </em><em>否则，继续。</em><em></em><br>MsgBox, 4, , A copy of the folder "%SourceFolder%" will be put into "%TargetFolder%". Continue?<br>IfMsgBox, No<br>return<br>SplitPath, SourceFolder, SourceFolderName <em>; 仅从它的完全路径提取文件夹名称。</em><br>FileCopyDir, %SourceFolder%, %TargetFolder%\%SourceFolderName%<br>if ErrorLevel<br>MsgBox 文件夹没能复制，也许因为在 "%TargetFolder%" 里已经存在同名文件夹。<br>return</pre>



</body>
</html>
